
package com.netsmart.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class Base64Util extends BaseUtil {

	public static void main(String[] args) {
//		 String oFilePath = "C:\\Users\\QiaoWei\\Desktop\\1.jpg";// 新生成的图片
//		 String nFilePath = "C:\\Users\\QiaoWei\\Desktop\\2.jpg";// 新生成的图片
//		 String strImg = getImageStr(oFilePath);
//		 System.out.println(strImg);
//		 generateImage(strImg, nFilePath);
		
		System.out.println(""+null+"43242");
	}

	// 图片转化成base64字符串
	public static String getImageStr(String filePath) {// 将图片文件转化为字节数组字符串，并对其进行Base64编码处理
		InputStream in = null;
		byte[] data = null;
		// 读取图片字节数组
		try {
			in = new FileInputStream(filePath);
			data = new byte[in.available()];
			in.read(data);
			in.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		// 对字节数组Base64编码
		BASE64Encoder encoder = new BASE64Encoder();
		return encoder.encode(data);// 返回Base64编码过的字节数组字符串
	}

	// base64字符串转化成图片
	public static boolean generateImage(String imgStr, String filePath) { // 对字节数组字符串进行Base64解码并生成图片

		boolean bl = false;
		if (imgStr != null) // 图像数据为空
		{
			BASE64Decoder decoder = new BASE64Decoder();
			try {
				// Base64解码
				byte[] b = decoder.decodeBuffer(imgStr);
				for (int i = 0; i < b.length; ++i) {
					if (b[i] < 0) {// 调整异常数据
						b[i] += 256;
					}
				}
				// 生成指定格式图片
				OutputStream out = new FileOutputStream(filePath);
				out.write(b);
				out.flush();
				out.close();
				bl = true;
			} catch (Exception e) {
				System.out.println(e.getMessage());
			}
		}
		return bl;
	}
}
